area = (s * (s - a) * (s - b) * (s - c)) ** 0.5
print("The area of the triangle is %0.2f" % area)
num = int(input("enter 1-digit number:"))
print("it is an armstrong number:", num)
print("it is not an armstrong number:", num)
num=int(input("Enter a number:"))
print(num,"is an Armstrong number")
print(num,"is not an Armstrong number")
from tkinter import Tk, Canvas
from PIL.Image import open as openImage
from PIL.ImageTk import PhotoImage
class Background(Canvas):
Classe para gerar um plano de fundo animado
def __init__(self, tk_instance, *geometry, fp="background.png", animation_speed=50):
# Verifica se o parâmetro tk_instance é uma instância de Tk
if not isinstance(tk_instance, Tk):
raise TypeError("The tk_instance argument must be an instance of Tk.")
# Recebe o caminho de imagem e a velocidade da animação
self.animation_speed = animation_speed
# Recebe a largura e altura do widget
self.__width = geometry[0]
self.__height = geometry[1]
# Inicializa o construtor da classe Canvas
self, master=tk_instance, width=self.__width, height=self.__height
# Carrega a imagem que será usada no plano de fundo
self.__bg_image = self.getPhotoImage(
image_path=self.image_path,
# Cria uma imagem que será fixa, ou seja, que não fará parte da animação e serve em situações de bugs na animação
self.__background_default = self.create_image(
self.__width // 2, self.__height // 2, image=self.__bg_image
# Cria as imagens que serão utilizadas na animação do background
self.__background.append(
self.__width // 2, self.__height // 2, image=self.__bg_image
self.__background.append(
self.__width + (self.__width // 2),
def getBackgroundID(self):
Retorna os id's das imagens de background
return [self.__background_default, *self.__background]
image=None, image_path=None, width=None, height=None, closeAfter=False
Retorna um objeto da classe PIL.ImageTk.PhotoImage de uma imagem e as imagens criadas de PIL.Image
(photoImage, new, original)
@param image: Instância de PIL.Image.open
@param image_path: Diretório da imagem
@param width: Largura da imagem
@param height: Altura da imagem
@param closeAfter: Se True, a imagem será fechada após ser criado um PhotoImage da mesma
# Abre a imagem utilizando o caminho dela
image = openImage(image_path)
# Será redimesionada a imagem somente se existir um width ou height
# Cria uma nova imagem já redimensionada
newImage = image.resize([width, height])
photoImage = PhotoImage(newImage)
# Se closeAfter for True, ele fecha as imagens
# Fecha a imagem original
# Retorna o PhotoImage da imagem,a nova imagem que foi utilizada e a imagem original
return photoImage, newImage, image
Método para resetar o background, apagando todos os itens que não sejam o plano de fundo
# Deleta todos os itens do canvas
# Para a animação passando False para o atributo "stop"
# Limpa a lista de imagens usadas na animação
self.__background.clear()
# Cria uma imagem que será fixa, ou seja, que não fará parte da animação e serve em situações de bugs na animação
self.__background_default = self.create_image(
self.__width // 2, self.__height // 2, image=self.__bg_image
# Cria as imagens que serão utilizadas na animação do background
self.__background.append(
self.__width // 2, self.__height // 2, image=self.__bg_image
self.__background.append(
self.__width + (self.__width // 2),
Método para iniciar a animação do background
# Enquanto o atributo "stop" for False, a animação continuará em um loop infinito
# Move as imagens de background na posição X
self.move(self.__background[0], -10, 0)
self.move(self.__background[1], -10, 0)
self.tag_lower(self.__background[0])
self.tag_lower(self.__background[1])
self.tag_lower(self.__background_default)
# Se a primeira imagem da lista tiver saído da área do widget, uma nova será criada depois da segunda imagem
if self.bbox(self.__background[0])[2] <= 0:
# Deleta a primeira imagem da lista (imagem que saiu da área do widget)
self.delete(self.__background[0])
self.__background.remove(self.__background[0])
# Cria uma nova imagem a partir da última imagem da animação
width = self.bbox(self.__background[0])[2] + self.__width // 2
self.__background.append(
self.create_image(width, self.__height // 2, image=self.__bg_image)
# Executa novamente o método depois de um certo tempo
self.after(self.animation_speed, self.run)
Método para parar a animação do background
def base_check(xnumber, xbase):
for char in xnumber[len(xnumber ) -1]:
if int(char) >= int(xbase):
def convert_from_10(xnumber, xbase, arr, ybase):
if int(xbase) == 2 or int(xbase) == 4 or int(xbase) == 6 or int(xbase) == 8:
quotient = int(xnumber) // int(xbase)
remainder = int(xnumber) % int(xbase)
convert_from_10(dividend, xbase, arr, base)
quotient = int(xnumber) // int(xbase)
remainder = int(xnumber) % int(xbase)
if remainder == 10: remainder = 'A'
if remainder == 11: remainder = 'B'
if remainder == 12: remainder = 'C'
if remainder == 13: remainder = 'D'
if remainder == 14: remainder = 'E'
if remainder == 15: remainder = 'F'
convert_from_10(dividend, xbase, arr, ybase)
def convert_to_10(xnumber, xbase, arr, ybase):
ans = ans + (int(i) * (int(ybase) ** j))
number = input("Enter the number you would like to convert: ")
while not is_base_possible:
base = input("What is the base of this number? ")
is_base_possible = base_check(number, base)
print(f"The number {number} is not a base {base} number")
dBase = input("What is the base you would like to convert to? ")
convert_from_10(number, dBase, arrayfrom, base)
answer = arrayfrom[::-1] # reverses the array
print(f"In base {dBase} this number is: ")
answer = convert_to_10(number, dBase, arrayto, base)
print(f"In base {dBase} this number is: {answer} ")
number = convert_to_10(number, 10, arrayto, base)
convert_from_10(number, dBase, arrayfrom, base)
print(f"In base {dBase} this number is: ")
def base_check(xnumber, xbase):
for char in xnumber[len(xnumber ) -1]:
if int(char) >= int(xbase):
def convert_from_10(xnumber, xbase, arr, ybase):
if int(xbase) == 2 or int(xbase) == 4 or int(xbase) == 6 or int(xbase) == 8:
quotient = int(xnumber) // int(xbase)
remainder = int(xnumber) % int(xbase)
convert_from_10(dividend, xbase, arr, base)
quotient = int(xnumber) // int(xbase)
remainder = int(xnumber) % int(xbase)
if remainder == 10: remainder = 'A'
if remainder == 11: remainder = 'B'
if remainder == 12: remainder = 'C'
if remainder == 13: remainder = 'D'
if remainder == 14: remainder = 'E'
if remainder == 15: remainder = 'F'
convert_from_10(dividend, xbase, arr, ybase)
def convert_to_10(xnumber, xbase, arr, ybase):
ans = ans + (int(i) * (int(ybase) ** j))
number = input("Enter the number you would like to convert: ")
while not is_base_possible:
base = input("What is the base of this number? ")
is_base_possible = base_check(number, base)
print(f"The number {number} is not a base {base} number")
dBase = input("What is the base you would like to convert to? ")
convert_from_10(number, dBase, arrayfrom, base)
answer = arrayfrom[::-1] # reverses the array
print(f"In base {dBase} this number is: ")
answer = convert_to_10(number, dBase, arrayto, base)
print(f"In base {dBase} this number is: {answer} ")
number = convert_to_10(number, 10, arrayto, base)
convert_from_10(number, dBase, arrayfrom, base)
print(f"In base {dBase} this number is: ")
def pascal_triangle(lineNumber):
l.append(list1[i - 1][j] + list1[i - 1][j - 1])
pascalTriangle = pascal_triangle(n)
return pascalTriangle[n][k - 1]
def pascal_triangle(lineNumber):
l.append(list1[i - 1][j] + list1[i - 1][j - 1])
pascalTriangle = pascal_triangle(n)
return pascalTriangle[n][k - 1]
def Binary_Search(Test_arr, low, high, k):
return Binary_Search(Test_arr, Mid + 1, high, k)
return Binary_Search(Test_arr, low, Mid - 1, k)
def Insertion_Sort(Test_arr):
for i in range(1, len(Test_arr)):
j = Binary_Search(Test_arr[:i], 0, len(Test_arr[:i]) - 1, val)
if __name__ == "__main__":
Test_list = input("Enter the list of Numbers: ").split()
Test_list = [int(i) for i in Test_list]
print(f"Binary Insertion Sort: {Insertion_Sort(Test_list)}")